Repository navigation
refactor(setting): 설정 전용 저장소와 좁은 주입 계약 분리 (#1429) - #2123
Conversation
|
열린 PR 중 이 PR 과 같은 파일을 서로 다르게 고친 것이 있다. 어느 쪽이 먼저 머지되든 나중 쪽은 base 를 병합해야 통과한다 (#1750).
머지 자체는 GitHub 이 막는다 — 한쪽이 들어가면 다른 쪽은 CONFLICTING 이 되어 merge queue 에 못 들어간다. 이 코멘트는 리컨사일러가 매 실행 현재 상태로 고쳐 쓴다. 해소되면 |
merge queue 방출 — 재투입했다사유 |
|
이 PR 은
|
…ing-repositories # Conflicts: # feature/afternote/presentation/src/test/kotlin/com/afternote/feature/afternote/presentation/AfternoteAuthorTestFixtures.kt # feature/setting/presentation/src/test/kotlin/com/afternote/feature/setting/presentation/SettingFlowTest.kt
OnlyReadOneBook
left a comment
There was a problem hiding this comment.
CI 전량 초록 확인. 검색 status: 색인 갱신용 코멘트.
먼저 볼 파일:
feature/setting/domain/src/main/java/com/afternote/feature/setting/domain/SettingAccountRepository.ktfeature/setting/domain/src/main/java/com/afternote/feature/setting/domain/SettingNotificationRepository.ktfeature/setting/data/src/main/kotlin/com/afternote/feature/setting/data/SettingAccountRepositoryImpl.ktfeature/setting/presentation/src/main/kotlin/com/afternote/feature/setting/presentation/home/SettingViewModel.kt설정에서만 호출하는 계정·알림 API 8개가 공통 UserRepository에 남아 있어, 프로필이나 수신자를 사용하는 코드도 이 계약에 의존했습니다. 계정·알림 계약과 구현·Hilt 바인딩을 설정 모듈로 옮기고, 설정 ViewModel이 실제 사용하는 좁은 저장소를 주입받게 합니다.
수신자·프로필 호출 기록도 각 테스트 fixture로 옮깁니다. 탈퇴 성공 뒤 세션 정리, 정리 실패의 진단, 푸시 설정 오류 분류와 API 요청·응답을 보존합니다. 보류된 #1967에서 저장소 책임 분리에 해당하는 범위를 현재 develop 구조에 맞춰 추출했습니다. 원본에서 확인된 계약·매퍼·fixture의 Viewed 상태를 대조해 옮겼으며, 테스트와 순수 이관 파일을 포함한 40/46개가 Viewed입니다. 새 주입·빌드 경계 6개는 검토를 남겼습니다.
검증:
계측 테스트의 계정 fixture는 생성 시 받은 프로필 이메일을 사용합니다. 프로덕션 Hilt 모듈은 internal을 유지하고, 테스트 대체 바인딩은 Java 계측 소스에 둡니다.
Closes #1429
Closes #1739
CI Test Plan
{ "androidTest": { "mode": "full", "reason": "앱의 설정 data 의존성과 Hilt 테스트 대체 바인딩을 변경하므로 전체 계측 테스트로 앱 주입 그래프와 기존 화면 흐름을 검증합니다.", "tests": [] } }